package com.sw.c.utils;

public class SqlGenerator {

    public static void main(String[] args) {
        // 示例调用
        String sheetName = "学时109以上";
//        String fieldData = "name,age,address"; // 字段名数据
//        String fieldComment = "姓名,年龄,地址"; // 字段中文注释数据
//        String generatedSql = generateCreateTableSql(sheetName, fieldData, fieldComment);
//        System.out.println(generatedSql);
        String name_pinyin = ExcelUtils.convertToPinyin(sheetName); // 获取拼音的表名
        System.out.println(name_pinyin);

    }

    /**
     * 根据表名、字段名及字段注释生成 CREATE TABLE SQL 语句
     * @param sheetName 表名
     * @param fieldData 逗号分隔的字段名
     * @param fieldComment 逗号分隔的字段注释
     * @return 生成的 SQL 语句
     */
    public static String generateCreateTableSql(String sheetName, String fieldData, String fieldComment) {
        try {
            String name_pinyin = ExcelUtils.convertToPinyin(sheetName); // 获取拼音的表名

            // 假设字段和中文字段以逗号分隔
            String[] fieldNames = fieldData.split(",");
            String[] fieldComments = fieldComment.split(",");

            // 构建 CREATE TABLE SQL
            StringBuilder createTableSql = new StringBuilder();
            createTableSql.append("CREATE TABLE ").append(name_pinyin).append(" (\n");

            // 添加 id 字段
            createTableSql.append("    id BIGINT(30) NOT NULL AUTO_INCREMENT COMMENT 'ID',\n");

            // 构造每个字段的定义
            for (int i = 0; i < fieldNames.length; i++) {
                createTableSql.append("    ").append(fieldNames[i].trim())  // 字段名
                        .append(" VARCHAR(50) ")                    // 字段类型
                        .append("COMMENT '").append(fieldComments[i].trim()).append("'");
                if (i < fieldNames.length) {
                    createTableSql.append(",\n");
                }
            }
            // 添加学年字段
            createTableSql.append("    school_year VARCHAR(50) COMMENT '学年',\n");
            //添加入库时间
            createTableSql.append("    ruku_time datetime COMMENT '入库时间',\n");
            // 添加主键约束
            createTableSql.append("    PRIMARY KEY (id)\n");
            // 添加表的注释
            createTableSql.append(") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='").append(sheetName).append("';");
            // 返回生成的 SQL 语句
            return createTableSql.toString();

        } catch (Exception e) {
            e.printStackTrace();
            return "生成 SQL 语句时发生错误: " + e.getMessage();
        }
    }
}
